import os
import matplotlib.font_manager as fm

# 获取项目根目录（现在是catcher包的根目录）
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))

# 数据存储路径
DATA_PATH = r"F:\资料\期货"

# 尝试找到系统中的中文字体
system_fonts = fm.findSystemFonts()
chinese_fonts = [f for f in system_fonts if os.path.basename(f).startswith(('msyh', 'simhei', 'simsun'))]
FONT_PATH = os.path.join(ROOT_DIR, "..", "font", "msyh.ttc")

# 报告存储路径
REPORT_PATH = os.path.join(DATA_PATH, "reports") 

# 添加新的配置参数
ANALYSIS_CONFIG = {
    # 时间窗口设置
    'windows': {
        'short': 50,   # 短期，约1个月
        'medium': 120,  # 中期，约3个月
        'long': 240    # 长期，约6个月
    },
    
    # 权重设置
    'weights': {
        'short': 0.5,
        'medium': 0.3,
        'long': 0.2
    },
    
    # 时间衰减因子
    'decay_factor': 0.94,
    
    # 各个品种的自定义参数
    'custom_params': {
        '豆油#棕榈油': {
            'std_threshold': 1.8,
            'seasonal_adjust': True
        },
        '螺纹#热卷': {
            'std_threshold': 2.2,
            'seasonal_adjust': False
        }
    }
} 

# 期货代码配置
# 大商所，114 郑商所115,上期所113,能源中心117,中金所118,上期能源119,中国金融期货120


# 期货参数配置
FUTURES_CONFIG = {
    '豆油#棕榈油': {
        'code1': "114.ym",
        'code2': "114.pm",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 2,
        'point_value': 10,
        'exchange1': '大商所',
        'exchange2': '大商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '日盘',
        'correlation': 0.85,
        'typical_spread': 1000
    },
    '豆一#豆粕': {
        'code1': "114.am",
        'code2': "114.mm",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 1,
        'point_value': 10,
        'exchange1': '大商所',
        'exchange2': '大商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '日盘',
        'correlation': 0.75,
        'typical_spread': 800
    },
    '豆粕#菜粕': {
        'code1': "114.mm",
        'code2': "115.RMM",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 1,
        'point_value': 10,
        'exchange1': '大商所',
        'exchange2': '郑商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '日盘',
        'correlation': 0.80,
        'typical_spread': 600
    },
    '塑料#pp（聚丙乙烯）': {
        'code1': "114.lm",
        'code2': "114.ppm",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 1,
        'point_value': 10,
        'exchange1': '大商所',
        'exchange2': '大商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '夜盘',
        'correlation': 0.90,
        'typical_spread': 300
    },
    '塑料#pvc': {
        'code1': "114.lm",
        'code2': "114.vm",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 1,
        'point_value': 10,
        'exchange1': '大商所',
        'exchange2': '大商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '夜盘',
        'correlation': 0.85,
        'typical_spread': 400
    },
    '硅铁#锰硅': {
        'code1': "115.SFM",
        'code2': "115.SMM",
        'margin_ratio': 0.15,
        'leverage': 8,
        'min_point': 2,
        'point_value': 10,
        'exchange1': '郑商所',
        'exchange2': '郑商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '夜盘',
        'correlation': 0.75,
        'typical_spread': 1500
    },
    '棉花#棉纱': {
        'code1': "115.CFM",
        'code2': "115.CYM",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 5,
        'point_value': 10,
        'exchange1': '郑商所',
        'exchange2': '郑商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '日盘',
        'correlation': 0.90,
        'typical_spread': 2000
    },
    'pta#短纤': {
        'code1': "115.TAM",
        'code2': "115.PFM",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 2,
        'point_value': 10,
        'exchange1': '郑商所',
        'exchange2': '郑商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '夜盘',
        'correlation': 0.95,
        'typical_spread': 500
    },
    '螺纹#热卷': {
        'code1': "113.rbm",
        'code2': "113.hcm",
        'margin_ratio': 0.15,
        'leverage': 8,
        'min_point': 1,
        'point_value': 10,
        'exchange1': '上期所',
        'exchange2': '上期所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '夜盘',
        'correlation': 0.95,
        'typical_spread': 200
    },
    '玻璃#纯碱': {
        'code1': "115.FGM",
        'code2': "115.SAM",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 1,
        'point_value': 10,
        'exchange1': '郑商所',
        'exchange2': '郑商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '夜盘',
        'correlation': 0.70,
        'typical_spread': 700
    },
    '玉米#玉米淀粉': {
        'code1': "114.cm",
        'code2': "114.csm",
        'margin_ratio': 0.12,
        'leverage': 10,
        'min_point': 1,
        'point_value': 10,
        'exchange1': '大商所',
        'exchange2': '大商所',
        'trading_unit': '吨',
        'min_order': 1,
        'max_order': 1000,
        'trading_hours': '日盘',
        'correlation': 0.85,
        'typical_spread': 400
    }
} 